package com.xiaowen.codeData.service;

import com.xiaowen.codeData.dto.*;
import com.xiaowen.codeData.entity.CodeData;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaowen.dataProcessing.dto.SimilarCombineRespDTO;
import com.xiaowen.tool.excle.ExcelExportDTO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yf-wenhao
 * @since 2024-10-02
 */
public interface CodeDataService extends IService<CodeData> {

    List<OriginalCodeDTO> generateLabel(Integer projectId);

    List<CodeData> generateLabelWithExample(OriginalCodeReqDTO reqDTO);

    List<CodeData> generateNetName(Integer projectId, Integer code);

    List<CodeData> matchNetName(MatchNetNameReqDTO reqDTO);

    List<CodeDataDTO> listByProjectId(Integer projectId, Integer code);

    Boolean add(CodeData reqDTO);

    List<List<CodeData>> similarCombine(MatchNetNameReqDTO reqDTO);

    Boolean confirmCombine(ConfirmCombineDTO combineDTO);

    ExcelExportDTO getCodeExcelExportDTO(Integer projectId);

    Boolean combineByChoose(MatchNetNameReqDTO reqDTO);

    Boolean update(CodeData codeData);

    Integer getLastCodeByProjectId(Integer projectId);

    Boolean sortCode(CodeDataSortReqDTO sortReqDTO);
}
